package XML;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.io.InputStream;

/*
    通用的直接读取文件的方式
    类名.class.getClassLoader().getResourceAsStream("文件名"),
    前提是文件必须在src目录下，返回一个输入流
*   利用SAXReader加载xml文件,返回一个Document对象
*   利用Document对象,获取根元素,返回Element对象
*   利用Element对象,获取根元素下的所有子元素,返回一个List集合
*       有多少层嵌套就用多少个for循环遍历，直到遍历完所有的子元素

    Element 类的常用方法
        getName() 获取元素的名称
        getText() 获取元素的文本内容
        element(String name) 获取元素的指定子元素,返回一个Element对象
        attributeValue(String name) 获取元素的指定属性值

* */
public class dom4jTest {
    @Test
    public void test() throws DocumentException {
        InputStream xml = dom4jTest.class.getClassLoader().getResourceAsStream("XML/Demo03.xml");

        Document dom = new SAXReader().read(xml);
        Element rootElement = dom.getRootElement();
        rootElement.elements().forEach(element -> {
            System.out.println(element.getName());
            for (Element element1 : element.elements()) {
                System.out.println(element1.getName());
            }
        });
    }

}
